package com.cacho.s2b.lesson.learn;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
/**
 * @Description 工具类 org.apache.commons.lang3
 * @Author LingWei
 * @date 2024/01/30
 **/
public class LearnCommonsLang3 {
    public final static String TEST = "test";

    public static void main(String[] args){
        stringUtils();
        // numberUtils();
    }
    public static void stringUtils(){
        // StringUtils.isEmpty(str): 判断某字符串是否为空，为空的标准是 str==null 或 str.length()==0
        System.out.println(StringUtils.isEmpty(null)); //true
        System.out.println(StringUtils.isEmpty("")); //true
        System.out.println(StringUtils.isEmpty(" ")); // false 在 StringUtils 中空格作非空处理
        System.out.println(StringUtils.isEmpty("bob")); //false
        System.out.println("两个字符串相差长度："+StringUtils.compare("bo","")); //2-0=2
        System.out.println("字符串是否不为空："+StringUtils.isNotEmpty("")); // false
        System.out.println("数组字符串是否存在为空："+StringUtils.isAnyEmpty(new String[] {"","err"})); // false
        //三元表达式，条件？为真：为假
        System.out.println(StringUtils.isEmpty(TEST)?"第一个表达式true时取":"第一个表达式 false 时取");
        System.out.println("统计字符串中某个字符或子字符串(大小写有关)出现的次数："+StringUtils.countMatches(TEST,"t"));
    }

    public static void numberUtils(){
        // 该类是操作与数值相关的工具类，例如，字符串转换数字，数字间的比较，校验数字范围等，还可以对基本类型数组内的值取最大值，最小值等.
        System.out.println("字符串转换为 int,如果无法转换,默认为0："+NumberUtils.toInt(null)); // 0
        System.out.println("字符串转换为 int,如果无法转换,自定义默认值："+NumberUtils.toInt("s10",1)); // 0
        int [] arr = {1,0,7,-3,-1};
        System.out.println("返回 int 数组最大值："+NumberUtils.max(arr));  // 7
        System.out.println("返回 int 数组最小值："+NumberUtils.min(arr));  // -3

        System.out.println("1.判断字符串能否转换为数字："+NumberUtils.isCreatable("3.14"));  // true
        System.out.println("2.判断字符串能否转换为数字："+NumberUtils.isCreatable("3.s10"));  // false

        System.out.println("通过字符串创建BigDecimal类型，支持long、int、float、double、number等数值："+NumberUtils.createBigDecimal("3.10"));  // 3.10
        System.out.println("通过字符串创建BigDecimal类型："+NumberUtils.createBigDecimal(null));  // null

    }
}
